package com.medical.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

/**
 * 登陆认证的拦截器
 * @author LTT-AH-ZY
 * @date 创建时间：2017年8月15日 上午11:57:20 
 * @version 1.0
 * @parameter 参数及其意义
 * @return 返回值
 * @throws 异常类及抛出条件
 */
public class LoginInterceptor implements HandlerInterceptor{
	
	/*
	 * Handler执行完成之后调用这个方法
	 * */
	@Override
	public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
			throws Exception {
		// TODO Auto-generated method stub
		
	}
	
	/*
	 * Handler执行之后，ModelAndView返回之前调用这个办法
	 * */
	@Override
	public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
			throws Exception {
		// TODO Auto-generated method stub
		
	}

	/*
	 * Handler执行之前调用这个方法
	 * */
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
		System.out.println("进入拦截器拦截！！！");
		//获取请求的URL
		String url = request.getRequestURI();
		//URL:Login.jsp是公开的；这个demo是除了login.jsp是可以公开访问的，其他的URL都进行拦截控制
		if(url.indexOf("login.action")>=0){
			return true;
		}
		//获取session
		HttpSession session = request.getSession();
		Integer hosploginid = (Integer)session.getAttribute("hosploginid");
		if(hosploginid != null){
			System.out.println("输出hosploginid："+hosploginid);
			System.out.println("session里面的值不为空，跳过拦截，直接登陆成功！！！");
			return true;
		}
		//不符合条件的，跳转道登陆界面
		//request.getRequestDispatcher("/WEB-INF/LoginView/Login.jsp").forward(request, response);
		response.sendRedirect("/WebMedical/Login/login.action");//拦截成功跳转到login界面
		System.out.println("拦截成功！！！成功执行跳转。。。");
		return false;
	}
	
}
